package com.ruoyi.mapper;

import java.util.List;
import com.ruoyi.domain.TycPatent;
import org.apache.ibatis.annotations.Update;

/**
 * 专利Mapper接口
 * 
 * @author ruoyi
 * @date 2020-09-09
 */
public interface TycPatentMapper 
{
    /**
     * 查询专利
     * 
     * @param id 专利ID
     * @return 专利
     */
    public TycPatent selectTycPatentById(Long id);

    /**
     * 查询专利列表
     * 
     * @param tycPatent 专利
     * @return 专利集合
     */
    public List<TycPatent> selectTycPatentList(TycPatent tycPatent);

    /**
     * 新增专利
     * 
     * @param tycPatent 专利
     * @return 结果
     */
    public int insertTycPatent(TycPatent tycPatent);

    /**
     * 修改专利
     * 
     * @param tycPatent 专利
     * @return 结果
     */
    public int updateTycPatent(TycPatent tycPatent);

    /**
     * 删除专利
     * 
     * @param id 专利ID
     * @return 结果
     */
    public int deleteTycPatentById(Long id);

    /**
     * 批量删除专利
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteTycPatentByIds(String[] ids);

    /**
     * 提交申报
     *
     * @param id 课题ID
     * @return 结果
     */
    @Update("update tyc_patent set on_records = 2 where id=#{id}")
    int submitApplications(Long id);

    /**
     * 提交申请备案
     *
     * @param id 课题ID
     * @return 结果
     */
    @Update("update tyc_patent set status = 1 where id=#{id}")
    int updateSubmitForApproval(Long id);


    /**
     * 撤销申请
     *
     * @param id 课题ID
     * @return 结果
     */
    @Update("update tyc_patent set status = 0 where id=#{id}")
    int withdrawClaim(Long id);


    /**
     * 驳回备案
     *
     * @param id 课题ID
     * @return 结果
     */
    @Update("update tyc_patent set on_records = 3 where id=#{id}")
    int refusal(Long id);


    /**
     * 通过申请备案
     *
     * @param id 课题ID
     * @return 结果
     */
    @Update("update tyc_patent set on_records = 1 where id=#{id}")
    int consent(Long id);


    /**
     * 驳回申请审批
     *
     * @param id 课题ID
     * @return 结果
     */
    @Update("update tyc_patent set status = 2 where id=#{id}")
    int updateDismissTheApproval(Long id);


    /**
     * 通过申请审批
     *
     * @param id 课题ID
     * @return 结果
     */
    @Update("update tyc_patent set status = 3 where id=#{id}")
    int updateBeApproved(Long id);

    /**
     * 管理员
     *
     * @param tycPatent 课题对象
     * @return 课题
     */
    List<TycPatent> selectYcTaskListAdmin(TycPatent tycPatent);
}
